package javaEEBasic.day02;

import java.util.Random;
import java.util.Scanner;

public class Test02 {
    public static void main(String[] args) {
/*        test03();
        test04();*/
        //test05();
//        test07();
//        test08();
        practiceAdding();
    }

    public static void test01() {
        //生成[3,17]之间的随机数
        Random random = new Random();
        int i = 0;
        while (i < 10) {
            //生成[0,15)之间的随机数，再加3  ：[3,17] 此为减加法
            int data = random.nextInt(15) + 3;
            System.out.println(data);
            i++;
        }
    }

    public static void test02() {
        //猜数游戏
        Random random = new Random();
        int num = random.nextInt(101);
        System.out.println("以生成一个[1,100]之间的随机数，请你猜是多少？");
        System.out.println("你一共由10次机会!");
        Scanner sc = new Scanner(System.in);
        int tryNum = 0;
        while (true) {
            if (tryNum >= 10) {
                System.out.println("生成的随机数是:" + num);
                System.out.println("10次都没猜中,游戏结束，请重新开始");
            }
            int data = sc.nextInt();
            tryNum++;
            if (data > num) {
                System.out.println("猜大了");
            } else if (data < num) {
                System.out.println("猜小了");
            } else {
                System.out.println("猜对了,生成的随机数是:" + num);
                System.out.println("游戏结束");
                break;
            }
        }
    }

    public static void test03() {
        int i = 1;
        Random random = new Random();
        while (true) {
            //1.编写一个while死循环在控制台输出 1-30 之间的数字
            if (i == 30) break;
            //2.改进程序，在循环执行过程中遇到偶数则生成一个（10-100）随机数
            // 只输出随机数，不再输出原本应该输出的数字
            //(10-100)数学符号理解，前后都不包括(10,100)
            if (i % 2 == 0) {
                int randomNum = random.nextInt(90) + 11;
                System.out.println(randomNum);
                i++;
                continue;
            }
            System.out.println(i);
            i++;
        }
    }

    public static void test04() {
        int length = 8848860; //珠穆朗玛峰高度，单位毫米
        double width = 0.1;  //纸张厚度，单位毫米
        int count = 0; //折叠次数
        while (length > width) {
            width *= 2;
            count++;
        }
        System.out.println(count);
        System.out.println(width);
    }

    //随机生成双色球
    public static void test05() {
        //理解，[1,33],[1,16]
        Random random = new Random();
        int redNum = 0;
        StringBuilder red = new StringBuilder();
        for (int i = 0; i < 6; i++) {
            redNum = random.nextInt(33) + 1;
            red.append(redNum + "-");
            if (i == 5) {
                //删除最后一个-
                red.deleteCharAt(red.length() - 1);
            }
        }
        int blueNum = random.nextInt(16) + 1;
        String result = red.append(" ").append(blueNum).toString();
        System.out.println(result);
    }

    public static void test07() {
        double priceA = 1199;
        double priceB = 399;
        double priceC = 199;
        double minA = priceA - 650 < priceA * 0.6 ? priceA - 650 : priceA * 0.6;
        double minB = priceB - 50 < priceB * 0.6 ? priceB - 50 : priceB * 0.6;
        double minC = priceC - 30 < priceC * 0.6 ? priceC - 30 : priceC * 0.6;
        double minCost = minA + minB + minC;
        System.out.println(minCost);
    }

     public static void test08() {
        int[] size = {41,42,43,44,45};
        int count = 0;
         for (int i = 0; i < size.length; i++) {
             if( size[i] == 42 || size[i] == 43) {
                 count++;
             }
         }
         System.out.println(size.length - count); //3
    }

    /**
     * 设计一个程序，帮助小学生练习10以内的加法，要求如下：
     * ① 每次随机生成1道加法算式题目，显示在控制台上，学生在控制台查看题目并输入答案，
     * 当输入的答案正确时提示“回答正确”，否则提示“回答错误”
     * ② 统计学生答对次数，答对5题时，提示“练习的很棒,程序结束！” 程序结束。
     */
    public static void  practiceAdding() {
        int correctNum = 0; // 记录答对的次数
        Random random = new Random();
        Scanner scanner = new Scanner(System.in);
        int a,b;
        while(true) {
            if(correctNum >= 5) {
                 System.out.println("练习的很棒,程序结束!");
                  break;
            }
             a = random.nextInt(10);
             b = random.nextInt(10);
             if(a + b < 10) {
                 System.out.print( a + " + " + b + " = ");
                 int  inputNum = scanner.nextInt();
                  if(inputNum == a + b) {
                       correctNum++;
                        System.out.println("回答正确");
                  }  else {
                       System.out.println("回答错误");
                  }
             }
        }

    }
}
